#ifndef __tabu__
#define __tabu__

#include "grafo.h"
#include "cmf.h"




class CliqueMaximaFronteraTabu : public CliqueMaximaFrontera {
	public:
		CliqueMaximaFronteraTabu(const Grafo& g);

		vector<uint> resolver(vector<int> &clique);
			
	private:
		
		bool esCliqueMayorFrontera(vector<int> C1, vector<int> C2, bool& tiene_iguales, int& rep);
		vector<int> unir(vector<int> CMF, vector<int> aux, bool& tienen_iguales, int& repetido);
		bool esTabu(vector<vector<int> > maximos_locales, vector<int> CMFTabu);

};

#endif
